

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<script type="text/javascript" src="helpman_topicinit.js"></script>

<title>MOF [Enterprise Architect User Guide]</title>

<meta name="keywords" content="Enterprise Architect, Sparx Systems, UML, MOF,MOF Introduction,Meta Object Facility,Meta Object Facility Introduction">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<link type="text/css" href="default.css" rel="stylesheet" />
<style type="text/css">
  A, A:Visited
  {
    color: #00F;
  }

  A:Active, A:Hover
  {
    color: #F00;
  }

  OL
  {
    margin: 5px 0 5px 48px;
  }

  UL
  {
    margin-bottom: 3px;
    margin-top: 0;
  }

  #nsr
  {
    background-color: #D4DFFF;
  }

  #nsr A
  {
    text-decoration: none;
  }

  #mainbody
  {
    padding: 8px;
  }

  .p_BodyText
  {
    padding: 5px 0;
  }
</style>



<style type="text/css" media="screen">
  BODY
  {
    background-color: #FFFFFF;
  }

  #nsr
  {
    padding: 6px 6px 0 6px;
    border-bottom: none;
    vertical-align: top;
    z-index: 2;
    visibility: visible;
    left: 0;
    top: 0;
    position: absolute;
  }

  #mainbody
  {
    left: 0;
    top: 0;
    margin: 0;
    position: absolute;
    padding: 10px;
    overflow: auto;
    height: 100%;
    z-index: 1;
    background-repeat: no-repeat;
    background-position: bottom right;
    background-attachment: fixed;
  }
</style>

<style type="text/css" media="print">
  #nsr
  {
    visibility: none;
  }

  #mainbody
  {
    overflow: visible;
  }
</style>
<script type="text/javascript" language="JavaScript" src="nonscroll.js"></script>

</head>
<body scroll="no">

<div id="page">



        <div id="content">
          <div id="content-inner">
          



  
          <div id="nsr">
            <table border="0" cellspacing="0" cellpadding="4" width="100%">
              <tr valign="top">
                <td align="left">
  


                  <p class="p_Heading1"><span class="f_Heading1">MOF</span></p>



  
                </td>
                <td align="right">
                  <a href="introduction.htm" onmouseover="document.images.main.src='button_main_h.gif'" onmouseout="document.images.main.src='button_main.gif'">
                    <img name="main" src="button_main.gif" border=0 alt="Return to Introduction">
                  </a>&nbsp;
    
                  <a href="csvimport.htm" onmouseover="document.images.prev.src='button_prev_h.gif'" onmouseout="document.images.prev.src='button_prev.gif'">
                    <img name=prev src="button_prev.gif" border=0 alt="Previous page" />
                  </a>&nbsp;
    
    
    
                  <a href="getting_started.htm" onmouseover="document.images.next.src='button_next_h.gif'" onmouseout="document.images.next.src='button_next.gif'">
                    <img name=next src="button_next.gif" border=0 alt="Next page" />
                  </a>
    
    
                </td>
              </tr>
            </table>
          </div>
          <div id="mainbody">
  


                <p class="p_TextIndentedL1"><img src="mof.png" width="340" height="100" border="0" alt="MOF"></p>
<p class="p_BodyText"><span class="f_BodyText">Enterprise Architect offers support for exporting packages to XMI under the </span><span style="font-style: italic;">Meta-Object Facility (</span><span class="f_BodyText" style="font-style: italic;">MOF)</span><span class="f_BodyText"> 1.3 and 1.4 standards. MOF models are created by assigning the stereotype </span><span class="f_BodyText" style="font-style: italic;">metamodel</span><span class="f_BodyText"> to the package. MOF models can be exported to MOF 1.3 or MOF 1.4 XMI file specification.</span></p>
<p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Background Knowledge</span></p>
<p class="p_BodyText"><span class="f_BodyText">MOF is an Object Management Group (OMG) standard that originated in the UML, when the OMG required a Meta-Modeling architecture to define the UML. MOF is designed as a four-layered architecture, as illustrated in the following diagram.</span></p>
<p class="p_TextIndentedL2"><img src="mof_model.png" width="519" height="714" border="0" alt="MOF_Model"></p>
<p class="p_BodyText"><span class="f_BodyText">Because of the similarities between the MOF-model and UML structure models, MOF meta-models are usually modeled as UML <a href="classdiagram.htm">Class diagrams</a>. You can also use the </span><span class="f_UIControl"><a href="metamodelgroup.htm">Metamodel</a></span><span class="f_BodyText"> page of the Enterprise Architect UML </span><span class="f_UIControl">Toolbox</span><span class="f_BodyText"> to create MOF model elements and connectors. A supporting standard of MOF is XMI, which defines an XML-based exchange format.</span></p>
<p class="p_BodyText"><span class="f_BodyText">MOF is a closed, strict meta-modeling architecture; every model element on every layer is strictly an instance of a model element of the layer above. MOF only provides a means to define the structure or abstract syntax of a languages or of data.</span></p>
<p class="p_BodyText"><span class="f_BodyText">Simplified, MOF uses the notion of Classes, as known from object orientation, to define concepts (model elements) on a meta-layer. These Classes (concepts) can then be instantiated through objects (instances) of the model layer below. Because an element on the M2 layer is an object (instance of an M3 model element) as well as a Class (an M2 layer concept) the notion of a </span><span class="f_BodyText" style="font-style: italic;">clabject</span><span class="f_BodyText"> is used. </span><span class="f_BodyText" style="font-style: italic;">Clabject</span><span class="f_BodyText"> is a merge of the words </span><span class="f_BodyText" style="font-style: italic;">Class</span><span class="f_BodyText"> and </span><span class="f_BodyText" style="font-style: italic;">object</span><span class="f_BodyText">.</span></p>
<p class="p_BodyText"><span class="f_BodyText">Another related standard is OCL, which describes a formal language that can be used to define model constraints by means of predicate logic.</span></p>
<p class="p_SeeAlso"><span class="f_SeeAlso">See Also</span></p>
<ul style="text-indent: 0px; margin-left: 30px; list-style-position: outside;">
<li><span class="f_Bulletlist1"><a href="getting_started.htm">Getting Started</a></span></li>
<li><span class="f_Bulletlist1"><a href="export_mof_to_xmi.htm">Export MOF to XMI</a></span></li>
</ul>




            </div>
          </div>
        </div>



</div>


</body>
</html>
